package com.mjk.common.ai.entity;

import com.mjk.common.base.model.BaseEntity;
import com.mjk.common.core.jdbc.annotation.ArcSharding;
import com.mjk.common.core.jdbc.annotation.Filed;
import com.mjk.common.core.jdbc.annotation.Id;
import com.mjk.common.core.jdbc.service.idgenerator.IdGenerateType;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

@Data
@EqualsAndHashCode(callSuper = true)
@ArcSharding(dataSource = "pg", table = "adi_ai_model")
public class AiModel extends BaseEntity {

    @Id(type = IdGenerateType.AUTO_UUID)
    private Long id;

    @Filed(cloum = "create_time")
    private LocalDateTime createTime;

    @Filed(cloum = "update_time")
    private LocalDateTime updateTime;

    @Filed(cloum = "is_deleted", comment = "是否删除（0：未删除，1：已删除）")
    private Boolean isDeleted;

    @Filed(cloum = "type", comment = "模型类型:text,image,embedding,rerank")
    private String type;

    @Filed(cloum = "name", comment = "模型名称")
    private String name;

    @Filed(cloum = "title", comment = "模型标题(更易理解记忆的名称)")
    private String title;

    @Filed(cloum = "platform", comment = "模型所属平台")
    private String platform;

    @Filed(cloum = "setting", comment = "模型配置")
    private String setting;

    @Filed(cloum = "remark", comment = "说明")
    private String remark;

    @Filed(cloum = "is_free", comment = "是否免费(true:免费,false:收费)")
    private Boolean isFree;

    @Filed(cloum = "is_enable", comment = "状态(1:正常使用,0:不可用)")
    private Boolean isEnable;

    @Filed(cloum = "context_window", comment = "上下文长度")
    private Integer contextWindow;

    @Filed(cloum = "max_input_tokens", comment = "最大输入长度")
    private Integer maxInputTokens;

    @Filed(cloum = "max_output_tokens", comment = "最大输出长度")
    private Integer maxOutputTokens;

    @Filed(cloum = "input_types", comment = "输入类型")
    private String inputTypes;
}
